package com.example.jpatest.service;

import com.example.jpatest.entity.Student;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface StudentService {

    /**
     * 查询全部
     *
     * @return
     */
    public List<Student> findAll();

    /**
     * 根据Id查询
     *
     * @param id
     * @return
     */
    public Student findById(Integer id);

    /**
     * 分页查询
     *
     * @param pageable
     * @return
     */
    Page<Student> findAll(Pageable pageable);

    /**
     * 分页查询，带有条件
     *
     * @param student
     * @param pageable
     * @return
     */
    Page<Student> findAll(Example<Student> student, Pageable pageable);


    /**
     * 根据姓名查询
     *
     * @param name
     * @return
     */
    public List<Student> findByName(String name);

    /**
     * 根据姓名和密码查询
     *
     * @param name
     * @param password
     * @return
     */
    public List<Student> findByNameAndPassword(String name, String password) throws Exception;

    /**
     * 插入数据
     *
     * @param student
     */
    public void insert(Student student);

    /**
     * 更新操作
     *
     * @param student
     */
    public void update(Student student);

    /**
     * 根据id删除
     *
     * @param id
     */
    public void delete(Integer id);


}
